home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 283_01 / wputs.c < prev   
C/C++ Source or Header  |  1988-12-07  |  2KB  |  64 lines

  1. /* wputs.c -- 9/5/88, d.c.oshel
  2.    */
  3.  
  4. #include "vidinit.h"
  5.  
  6. void wputs( char *p )  /* write string into window, uses wink */
  7. {
  8.      static int test;
  9.      static int temp;
  10.  
  11.      if (!Initialized) vid_init(0);
  12.  
  13.      temp = synchronized;
  14.      synchronized = 0;
  15.      while (*p) 
  16.      {
  17.          if (*p == '^')  /* escape character? switch modes */
  18.          {
  19.              p++;              /* read escape command char */
  20.              test = *p & 0xFF; /* kill sign extension */
  21.              switch ( test ) 
  22.              {
  23.                  case  '0': { vid_attr = vid[ 0]; break; }
  24.                  case  '1': { vid_attr = vid[ 1]; break; }
  25.                  case  '2': { vid_attr = vid[ 2]; break; }
  26.                  case  '3': { vid_attr = vid[ 3]; break; }
  27.  
  28.                  case  '4': { vid_attr = vid[ 4]; break; }
  29.                  case  '5': { vid_attr = vid[ 5]; break; }
  30.                  case  '6': { vid_attr = vid[ 6]; break; }
  31.                  case  '7': { vid_attr = vid[ 7]; break; }
  32.                  case  '8': { vid_attr = vid[ 8]; break; }
  33.                  case  '9': { vid_attr = vid[ 9]; break; }
  34.  
  35.                  case  'Ω': { vid_attr = vid[10]; break; } /* ea */
  36.                  case  'δ': { vid_attr = vid[11]; break; } /* eb */
  37.                  case  '∞': { vid_attr = vid[12]; break; } /* ec */
  38.                  case  'φ': { vid_attr = vid[13]; break; } /* ed */
  39.                  case  'ε': { vid_attr = vid[14]; break; } /* ee */
  40.                  case  '∩': { vid_attr = vid[15]; break; } /* ef */
  41.  
  42.                  case  '^': { 
  43.                             wink( *p );  /* verbatim ^ char */
  44.                             break; 
  45.                             }
  46.                  default:   { 
  47.                             --p; 
  48.                             vid_attr = vid[0];  /* just ^, no command arg */
  49.                             break; 
  50.                             }
  51.              }
  52.              p++;  /* next after escape command */
  53.          }
  54.          else 
  55.          {
  56.              wink( *p++ );  /* obeys newline, tab, if present */
  57.          }
  58.      }
  59.      /* update machine cursor only at last, if at all */
  60.      if ((synchronized = temp))
  61.         setmchnloc();
  62.  
  63. } /* wputs */
  64.